Repository navigation
own: narrowed and kept locals, stable private fields, constant function aliases, pushes and moves on some paths (TSLANG 71-79, 81) - #856
Merged
Conversation
…uctor or pushed, then read (TSLANG 71, 72) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…written by a call (TSLANG 73) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hen used (TSLANG 74) readFieldsForLocals runs before the signature pass marks imported calls' results fresh, so a merge of null and such a call was not taken as the function's own, though the call's result alone is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… initializer, is a call of that function (TSLANG 75) `const f = Math.fround` in clustered_geometry made every f(...) a call that may destroy anything. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… private field only it writes (TSLANG 76)
`constructor(private sample: NriSample) { this.reset(); }`: no call can
overwrite such a field, so the parameter used after `new` is read back from it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ills the object's array (TSLANG 77) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… used, reads that field (TSLANG 78) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ithout the default lib) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lement or null (TSLANG 79) `let pipeline = ...; if (pipeline) this.pipelines.push(pipeline); return pipeline;`: the reads after the paths join take the merge, and the local is released on the edge that did not push it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a value moved on some paths is released on the others (TSLANG 80, 81) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uses a value read after the ways join; 78 takes only an object new made - 80 copied an owned parameter stored into a field when it was read again, but nothing released the caller's reference: 3M calls grew to 2.7 GB. own_err_string_kept_param_known says why; it is refused again. - 81 released a value on the edges that did not move it even where a read of a copyable value followed the join (own_string_copy_branch: a print after the release). - 78 followed field stores into closure capture records too. - Error tests now refused as a field borrow say so; three now accepted (a value moved on some ways, an aliased store) moved into the 78/81 tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
DefaultLib ctest: 100% tests passed, 0 tests failed out of 7400 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
More
-mm=owngaps from compiling native_ts_graphics (TSLANG 71-81, written up in TSLANG_ISSUES.md).Fixed
T | nulland kept by a constructor can be used after it.cond ? null : f(), withffrom another module, pushed where not null, then used.const f = Math.fround), is a call of that function.thisto a call (this.reset()) still keeps a parameter, in a private field only it writes.new, then used, reads that field.let x = ...; if (x) this.xs.push(x); return x;reads the element where the paths join, or null.Not fixed
own_err_string_kept_param_knownsays why.Tests
00tslang_issue_71,00tslang_issue_73, and00tslang_issue_75to00tslang_issue_79, plus00tslang_issue_81.own_err_kept_local_array_poppedown_err_private_field_written_callbackown_err_const_alias_dropsown_err_kept_field_reboundown_err_kept_array_filled_after_popown_err_local_object_field_poppedown_err_pushed_let_poppedown_err_moved_on_some_paths_usedown-facts-objects.cmake.own_err_declared_dropsnow lends a public field, because the private one is a field 73 keeps.Validation
tests.ps1: all four models passed. Results are in a comment.own-sweep-fixes.🤖 Generated with Claude Code